The first place to change it is in the phone. At the Asterisk end you can try to limit the range of the negotiated value with maximum_expiration and minimum_expiration, but, in the end it is the phone that is proposing the short expiration, and it may or may not honour a minimum expiration that is higher than its offer.
Assumes you are using the supported SIP channel driver.
On further checking, it seems that it is optional for the phone to suggest a time, but the Asterisk and protocol default is 3600 seconds, so something must have overridden it. I suppose it is just possible that FreePBX does, because the normal problem is NAT and dynamic firewall rules timing out.