I would use XML and XPath here to extract out the Display Names and join them.
The SharePoint List I'm using for this example is below. We will extract out the Title, Status (single-select), and Members (multi-select).

See full flow below. I'll go into each of the actions.

Get items retrieves all the values from my List.

XML is a Compose that converts your Get items data to XML so we can use XPath expressions to extract out the Display Names. The expression used is below. Note that it also adds a root element to ensure it's valid XML.
xml(json(concat('{"root": { value:', outputs('Get_items')?['body/value'], '}}')))

Select takes in the value from Get items and uses the Title and Status Value to get the single items. It then uses the following expression to extract out the full list of Display Names, then joins then, separated by ", ". Note that you would just need to use the name of your Person field (SiteContacts) in place of my Members field.
join(xpath(outputs('XML'), concat('//value[ID=', item()?['ID'], ']/Members/DisplayName/text()')), ', ')
//Your expression would likely look like this
join(xpath(outputs('XML'), concat('//value[ID=', item()?['ID'], ']/SiteContacts/DisplayName/text()')), ', ')

The final output in this example would be:

[
{
"Name": "Team 01",
"Status": "Yes",
"Members": "Adele Vance, Lee Gu, Megan Bowen"
},
{
"Name": "Team 02",
"Status": "Yes",
"Members": "Diego Siciliani, Patti Fernandez"
},
{
"Name": "Team 03",
"Status": "Yes",
"Members": "Adele Vance, Patti Fernandez"
},
{
"Name": "Test 04",
"Status": "Yes",
"Members": "Joni Sherman, Johanna Lorenz"
},
{
"Name": "Test 05",
"Status": "No",
"Members": "Johanna Lorenz, Joni Sherman"
},
{
"Name": "Test 06",
"Status": "Yes",
"Members": "Johanna Lorenz, Diego Siciliani"
}
]