Can code review be skipped if you have unit tests?
The primary role of peer review is not to catch out bugs.
Yes, you may identify some potential bugs and doubtful, bug-prone code, this often happens, but occasionally spotting some blunders doesn't mean that peer review is a reliable way of ruling out the presence of bugs. Far from that. It's not the right tool to verify the functional correctness of implementation.
Code review enforces code maintainability, though. I will demand that code is clean and understandable (not just for its author) before it goes into production.
The presence of unit tests is completely orthogonal to that. You can have 100% code coverage and all tests passing for totally incomprehensible code.
Code review also serves to familiarize other developers with your work so that they know what is what and are able to pick up from there, or handle bug reports while you're on holidays etc. Knowing what you've done straight away may help them do their job well - keep the codebase consistent (stick to similar patterns and conventions throughout the app), or avoid code duplication.
In broader scheme of things, one also learns and grows as a developer from reading other people's code.
Unit tests can hardly be a substitution for any of it. Yes, if they're well written, they read like documentation, and we should strive for this. But again this is not mutually exclusive with performing peer review, quite the contrary - all the advantages of peer review still hold true, the fact that your peers have some nice unit tests to look at will only make the reviewing process easier and even more beneficial rather than redundant.