But grass is one of the weakest type defensively along with Ice and Rock. So unless it's paired with poison or steel, it's utility is kinda limited.
Actually it's the weakest type overall. Because unlike Ice and Rock, it sucks offensively. And bug isn't really bad defensively.
		
		
	 
I wouldn't call Grass one of the weaker types defensively, if anything, it's actually quite a valuable defensive type. It may have several weaknesses in a vacuum, but the thing is that with type matchups you cannot assess a type's offensive and defensive value purely based on the number of weaknesses/resistances they have or how many types they hit super effectively/not very effectively in a vacuum. 
Grass may have five weaknesses, but on the contrary, it has four resistances, one to itself and three to Water, Ground, and Electric. That might not seem like much on paper, but in practice this is actually a *big* deal. Those three resistances are 
extremely valuable resistances to have on a Pokemon. Water, Electric, and Ground are all very prolific offensive types, and not only are they prolific, they also have notable moves that are widespread in competitive such as Scald, Volt Switch, and Earthquake. Not only that, but the former two are particularly prolific in rain. This is in addition to the wide range of utility they have such as powder moves, Leech Seed, Aromatherapy, and whatnot. In general the three types are very common and good offensive types and resistances to them are highly sought after, especially since even outside of those moves they have a lot of great offensive Pokemon and high powered offensive moves at their disposal such as Hydro Pump and Thunder.
After all, Ferrothorn is one of the best defensive Pokémon, and while its Steel-typing is a big part of it, the Grass-type it possesses is also a big part of its defensive prowess. For the reasons I outlined, Grass isn't one of the weaker defensive types: if anything, it's one of the good ones defensively. It's not the *best* defensive type, but it is by no means a bad defensive type and in many ways it's a good defensive type in its own right. Any defensive Grass-type is good in part because it has Grass as a type, which speaks volumes about its own defensive value.
On the contrary, a type that can be considered to be quite poor defensively despite not looking so in a vacuum is 
Fire. In a vacuum, Fire seems like it would be a great defensive type, with a grand total of six resistances and only three weaknesses, but Fire's three weaknesses are 
highly crippling weaknesses to have, meanwhile its resistances hold little value because they are to weaker offensive types (Grass, Bug, Steel) or overlap with other, better defensive types that don't have the three crippling weaknesses Fire has. Fire's three weaknesses are to Ground, Rock, and Water. With how common Ground and Rock are as offensive types, this is very bad, same with Water which has offensive merit in many places, especially on rain. All three enjoy powerful moves such as Earthquake, Hydro Pump/Scald, Stone Edge, etc, both as STAB and as coverage, and worst of all, Fire's weakness to Rock is also an issue because of 
Stealth Rock, meaning a Fire-type takes more damage upon switch-in from the hazard, effectively hurting the type's defensive value because a Fire-type loses more health more quickly from Stealth Rock than it would if it wasn't weak to it. Now yes, on the contrary, Fire can be considered a fantastic offensive type because the ability to hit Steel and Grass super effectively is a valuable trait, but on the defensive end it's another case of "looks can be deceiving" as it resists several types, but its three weaknesses are so crippling that Fire is effectively a bad defensive type.
Thought I'd highlight two things to get the record straight.