joining 2 parts without losing their textures
When you join two meshes together, your parent mesh will be the default material.

You need to create a second material for your second mesh and use the UV Map node under Input to tell it which UV to use.



It's a good idea you give each UV a name too.As you can see, whichever UV is highlighted is what you can see in the viewport. You can ignore that. It will render both.