Stealing from the hand is too OP, i think. That way you effectively remove a draw turn from the opponent.
Stealing from the deck, instead, only takes a card the opponent have yet to draw. It doesn't seems so OP.
An alternative could be to copy a card from the hand/deck without removing it from the opponent hand/deck.