An UV map does not set the size of the textures you will use in your game engine. Try to use a 1024x1024 texture then change it to a 2048 (or any size) : you'll see the UV map will be adapted to the size.
What matters is the number of textures you will use (generally one per UV map), the size of them and the way you use these textures in "an optimal way" (so that the less part of them is useless).
Have you tried the "smart uv project" option when uv unwrapping ? If you do (make a copy before trying that), you'll see that the uv map is cut into plenty of small parts. The aim of that is to optimize the useful space of the textures while keeping the relative surfaces of the faces.
So for instance, if you look at your wings UV map, you can see that there is plenty of space in the texture that is not useful. So for a same texture size, the actual resolution for the wings will be lower with your UV map than it can be with the "smart uv project" option.
The counterpart of that is you cannot (or hardly) paint directly on such a texture. But you can do both : keep your UV map, use it in Blender with a big texture size, then bake on another "smart UV project" uv map with a lower texture size.
To summarize : all in red here is lost surface
For the textures, you can use a mipmap technics : the idea is to define several textures for the same UV map. The first texture is the full resolution (let say 1024, for instance) and is applied when the camera is very close to the model, the second texture is half resolution (ie. 512) and is shown when the cam is at some distance, the next texture is smaller again (ie. 256) and is used when the model is very far. Probably UE has built in functions to do that automatically.
Also the polycount of your mesh is important if you want to use it in a game. I cant be sure of a number for that (as computers are faster and faster) but for a main character around 20k tris is more or less a limit, generally. But there is no rules as all depends of what you want to do in your project.
Another point : sometimes symetrical parts of the mesh can share the same uv map and so share the same texture (when nothing needs to be different for each side). In consequence a same texture size will give a higher resolution in the game.
A last remark : imagine that in your game in UE, you want the colors of the eyes change (let's say depending on the dragon's mood), probably you'll need to set the eyes on a separate texture to do that as if not you'll need to change also the texture for all the head.