Power transistor or relay?
Either will work. A relay has the advantage that it can stand very high transient voltages and won't be disturbed by transients across the contacts. 

A suitably rated MOSFET can work too, but you'll probably have to overrate it by quite a bit for it to be reliable. It may need a heat sink if you're operating in under-hood conditions at high ambient temperature (Rds(on) goes up quite a bit with temperature). 

The relay is bigger (it will consume a bit more current, but that is immaterial in comparison to the 3A horn), and it will not need a heat sink. 

Cost could definitely go either way, depending on quantity etc., so if it's a volume product I suggest pricing it out both ways before you decide. 

If it's just a one-off, you can ignore cost and use a huge overkill MOSFET such as an FDH5500 (I'm using this one for a vehicle application). If you feed it 10V at the gate (not directly from the micro, you'll need to step up the voltage), it has an Rds(on) not exceeding 0.01 ohm at 100°C. It won't need a heatsink for a 3A load and has a good chance of blowing a fuse without dying in case of a short. Even so, it's only about $4.50 in singles.