Sure, you can think of Eigenvalues as a pure function, but that's beside the point in terms of an explanation. Eigenvalues returns a list, and Part (I'm using the [[]] syntax for Part) extracts elements from a list. So, when you said you wanted to use the first eigenvalue, I just used [[1]] to extract the first item from the list given by Eigenvalues.
To make the same type of comparison on both eigenvalues simultaneously, you probably want to do some sort of threading. There are several functions that do some form of threading, but the simplest and most obvious one is Thread:
Thread[{a, b} == {c, d}]
(* {a == c, b == d} *)
So,
Thread[Eigenvalues[{{1, 1}, {p, 1}}] == {x, y}]
(* {1 - Sqrt[p] == x, 1 + Sqrt[p] == y} *)
I'm not sure this is what you were asking for, just my best guess.