If you find a cheaper contract with another carrier then by law they have to allow you to port your number over. However, I don’t think this applies to prepaid phones, and $39/month is pretty damn cheap for a contract phone service, so your only real option is to try and find a cheaper cell plan.
Maybe AT&T will allow you to keep your number if you switch to a pay-as-you-go plan; it may be pre-paid, but it’s still the same carrier. In fact, it looks like the GoPhone plans allow you to keep your number… though maybe not your old phone.