if you were going to have a real game with real people, you could make three nametags that say "Player1", "Player2" and "Player3". When your guests arrive, you would assign a nametag to a specific person.
That's really all we're doing here.
Lines 2-4 in your code is you creating the nametags with those labels - but they don't represent a real thing yet. We just know we (might) use them later.
Then, on lines 7-9, you create a Player object, and assign the nametag to them, one at a time.
An instance variable means that whenever the object is created, you will have a variable called that. So, somewhere, there is code that creates a Player. That class might have an instance variable of type
String, that holds a name. You could then refer to p1.name, p2.name or p3.name to get each person's name.
Does that help?