ok, your description does not sound like a misfire at all.
btw, your 03 will be obd2, so you need a code reader to get codes.
when the engine starts, it is automatically in open loop from the moment you turn on the key until the pcm decides to take it into closed loop, either after detecting proper coolant temp for closed loop control, or after the open loop timer expires.
if you start the engine, and it revs up to 1500 and does not want to come down, that is nearly always due to a sticky iac.
when the a/c kicks on, the engine load increases, so the pcm opens the iac slightly to get a little more air going into the engine to keep the rpm constant even with the added load. if the iac is sticky, you can often feel the engine rpm drop when the a/c clutch kicks in. sometimes, you will also feel the rpm kick up a bit when the a/c clutch opens.
the conclusion I draw from all of the above is that your iac is suspected of being sticking. it is possible to clean them, but only very rarely is it successful in resolving the sticking, so the recommendation is to install a new iac.
and also btw, just because you put in a new iac does not mean that it will not be sticky - my experience is about 1 in 5 new ones stick right out of the box.
and you should also be aware that the new iac may need a different duty cycle to keep the engine running at the right speeds, so don't be surprised if you need a couple weeks to go by for the pcm to 'learn' how to operate the new iac, after which it should idle fine.