If you are using an external service to transfer data between two devices on the net (especially if one of them is relying on a mobile network) you are going to get delays. You cannot control the routing of the data nor the performance of the network or the server.
If it is really the case that a 3 second delay is high (as might be the case with say a financial trading application) then this model isn't going to work for you. You will need some form of direct communication between the phone and the thing.