Using the MAP function is definitely a good way to go. I have a simplified version which gives the same results and the array expands as you add new records to your date table (you refer to as Sheet2).
To create the date table, Format data into table with Ctrl+T (includes headers).
Next, create your first array for people (which will expand as you add to your date table to include new records). If you name your table or have any other tables in the worksheet, be sure to rename your table. It is 'Table1' in the formula below.
=TOCOL(CHOOSECOLS(Table1[#Headers],SEQUENCE(,SUM(COUNTA(Table1[#Headers])-1),2,1)))
The extra detail in the above formula ensures that only the 2nd header onwards is showing, i.e. does not show the date only people.
Finally, this array returns your desired values by person. The cell reference must be the first Person1 from the first array.
=MAP(A11#,LAMBDA(x,TEXTJOIN(",",TRUE,FILTER(Table1,Table1[#Headers]=x))))
If using excel 365, you can take advantage of the cell+# which will select the entire range based on the first cell.