AWS subnet change forces NAT gateway to recreate

The parameter change to subnet to “map_public_ip_on_launch” does in-place upgrade to subnet, but forces NAT gateway to do destroy/recreate. Tried several ways, unsuccessfully, to mitigate. However, making this same change through GUI does not force NAT gateway to be recreated. Is there a different approach that will not cause the outage?
Current approach loops through subnets and gateways specified in tfvars, creates in separate modules with dependencies. Gateway module will get subnet id, create elastic IP and then create NAT gateway. Successfully creates resources, but if there is a change to subnet parameter, it will force recreation of NAT gateway.