If you need coordinates precise to 1-3 meters, I suspect you might also have greater need for precision than any iOS device is capable of by itself. No app by itself is going to give you better accuracy. Other iOS apps are limited by the same hardware. Look for more precise GPS hardware. Further, what iOS means by "accuracy" is undocumented, and my own testing (from a few years ago) found that it's different at different accuracies.
You might reconsider if the 5-10 meter accuracy from the built-in hardware is good enough. All GPS accuracy is probabilistic in one way or another, and the distribution of reported coordinates for "5-10" meters might be good enough after all. In that testing I did, the coordinates reported with "10m" accuracy were actually within a 3.6m circle of their mean 50% of the time, and the root mean square error was 7.2m.
Why do you need coordinates precise to 1-3 meters? I imagine that for stop signs and manhole covers, coordinates precise to 10 meters and a description of the item are plenty good enough for someone to find the item again. It's no good for engineering anything, but then you probably want a surveyor anyway. I'm not saying that you don't need what you say; I just want to better understand your need and constraints to better inform suggested solutions.
You may be able to increase the accuracy returned by the "Location" function by lowering the "accuracy" parameter and increasing the "timeout" parameter.
If that's not enough I would suggest building an integration with the Google Maps API. After you fetch the location, use the Maps API to display a pin on a map that you can manually reposition to refine the coordinates.