99 subaru forester overheats at low speed

The head gaskets are less than 2 years old, radiator only almost 3 years old, I’ve constantly had oil leak issue. Now the problem is my temperature gauge rises after driving for 20-30 minutes when I’m going at a lower speed or in stop and go traffic. Both fans are working, no leaks, new thermostat, and new radiator cap.

I didn’t read “new water pump.”

Yes, when was last time you had the timing belt changed, and did you have a new water pump installed at that time?

And are you having to add coolant to maintain the level? Because if the head gasket job wasn’t done right, with the heads milled for flatness, an internal coolant leak could also be causing the overheat.