At idle RPM in cold winter weather, the engine is not producing enough heat to overcome cooling from the cold outside ambient air temperature.
Assuming a typical 4-cylinder sedan gas engine idling at about 900 RPM, it is firing 15 times per second at a likely lean fuel mix because all it needs to do to maintain that RPM, is overcome the friction of the bearings and the engine accessories.
When you get out on the road, the engine goes up to about 3000 RPM, firing 50 times a second on a rich fuel mixture, so much more heat is being produced.
The heater is likely producing some warm air, but it's not warm enough to matter to you. If you have the blower on high, the small heater core is trying to heat a huge moving air mass with limited thermal energy. Set the blower on low and it will feel warmer.
Also setting airflow to recirculate will help warm the cabin more quickly, though the recirculated cabin air may also fog and freeze the windows with moisture.
Turning on additional electrical loads like a rear window defroster and the vehicle lights will add load to the engine via the alternator, increasing the idle speed and fuel richness so it produces more heat. This effect will be limited, though, since the defrost heater and all the lights are about 2000 watts, or 2.5 HP of power for an automobile engine likely rated for 90-300 HP.
Slightly pressing the accelerator so it idles at 3000-4000 RPM will also increase the heat output somewhat, but it doesn't take much fuel to push an engine with no load up to this high idle RPM, so the warming effect is not as great as actually driving down the road at highway speed at this RPM.