I would only suspect head gasket or lower intake gasket if you're actually losing coolant. Make sure you have enough coolant, and the coolant system is bled properly. If you don't lose any, then you're probably okay. If your coolant is low or you see a leak, then you already know what the problem might be.
If you're losing coolant, then you have a leak somewhere, you would have to look around and see where it's dripping, you'll see it on the ground or on/around the engine/under the dash by the heater core if its external, and if the oil is milky or you're burning coolant through the exhaust, then its internal. Sometimes the internal leak is so slow that the only way you'll find it is a leak down test. External could be anything, radiator, hose, lower intake, head gasket, water pump, heater core, therm gasket, inlet pipe, bleeding nipple, etc.
I've had my fair share of fun with these cooling systems. It could be a thermostat, which is really cheap, and easy to repair on a 3.4 if you take the throttle body off. If you take the throttle body off, it could take you less than a half hour. If you don't, I won't go there.
I've also had problems like this due to air in the cooling system, and I've also had no heat because of a bad radiator cap (enough pressure to cool the engine, but not enough pressure to blow through the heater core). I've wasted a lot of time and money chasing the gremlins, so the first thing I recommend you do is fill/bleed, then determine if there's a leak, and go from there. I got rid of my 2003 3.4 with 186K and every cooling system issue I had ended up being something cheap and stupid in the end, with the exception of the lower intake gaskets and even those aren't the end of the world. If you need any instructions about how to do any of this stuff just search the forum.
Good luck!