I don't know if your hotel reservation is cast in stone but you may want to Check out Fort Lauderdale as an alternate airport. Often it is much cheaper to fly in there. It's about 20 mins to the port. The day the ship comes back, carnival does sell transfers to both airports so you may want to price flights coming into Miami and out of Fort Lauderdale. Maybe you can find a cheaper flight with a better time for you. Or in and out of FLL both ways.