Your approach will still work, but you just need to pass a contact object as the second parameter to your call
$fields = FieldsHelper::getFields(...);
Unfortunately afaik there is no API around contact the way there is around user, so it's a bit more complex to get it.
I got it by doing a database query (as in Selecting data using JDatabase) to find the #...
Create an override of com_fields/layouts/fields/render.php. Find this line:
$content = FieldsHelper::render($context, 'field.' . $layout, array('field' => $field));
Change it to also pass the item to field layout:
$content = FieldsHelper::render($context, 'field.' . $layout, array('field' => $field, 'item' => $item));
The item with its fields is ...