This is an impossible task given the constraints you present. Consider:
1. Everyone's voice is different. One mic, even a very good one, might not flatter your friend's voice. Another might do fine. You can't tell without trying.
2. Generally I would use a pair of mics for piano, in order to get a nice stereo perspective and balance the volume of bass/treble. And a third mic for vocals. Expecting one mic to do all this is asking too much.
3. Good microphone technique involves careful positioning, good microphone stands (that won't sag), nuanced listening techniques, and so on.
4. Cheap mics are going to sound cheap. (That said, if you know how to compromise you can work some miracles.)
5. A dynamic mic like the SM57 can work OK on vocals, especially for "belters". But it will suck on piano since the transients are going to be lost.
6. The room you are recording in matters a lot, since it will colour all the sounds.
7. Every piano is different. Is it a grand? Baby grand? Upright? They all need different techniques. There's a reason people use electronic pianos... you can just plug them into your computer and play!
8. USB mics are a low-end choice, as a rule, and I know nothing about them.
I know this is not what you want to hear, but as a trained audio engineer I can hardly lie to you!