Instead of fetching the parent page, use the current page and the siblings() method:
<?php snippet('portfolio', [
'portfolio' => $page
->siblings(false) // setting the `$self` param to `false`leaves out the current page
->listed()
->shuffle()
->limit(3)
]) ?>
Just to show how flexible Kirby is, you can also do it this way with filterby(), in a collection to get your main page set, and the chain the limit() and shuffle() on the end as required when you use it on the sinppet…