The simplest way to do it is to synchronize animations between the two characters. Art-wise, you can edit them at the same time and export both when you're done. For programming, you can take some time to slide both characters towards their starting positions, then play the matching animations for both at the same time.
As for the other option, it's just generally harder to do - if you wanted to animate 2 characters with the same animation, you'd have to assign different bones to each of the 2 characters. There are some options to go about it, but none are easy and all of them build on parts of the previously mentioned method:
- Use same animation for both characters programmatically - one of the characters will need dynamic bone remapping to get properly animated - it's doable but might be technically confusing;
- Combine characters into one mesh - all combinations will have to be exported separately, lots of storage space waste;
- Use same animation for both characters with static bone renaming, basically a mix of previous two techniques, probably most complicated.