It may depend on how they were provisioned initially. If they were provisioned remotely, then you might be able to modify each config file such that they will pick up the new ip whenever the config is next triggered. This assumes that the phones are programmed to auto provision and that you have config files for each on your existing 3cx instance. Keep in mind that as each phone does pick the new ip up, it will then be trying to communicate to the new ip.
If they were provisioned manually using the phone web interface, then you will most likely have to do again as I am guessing that they all sit behind home routers and such and I am guessing that most if not all never had their ports forwarded such that you can get to the phone web interfaces remotely to change.