I know for the key compression you are supposed to check if the y value is even or odd to determine which side of the curve it is on.
To be more precise, you determine whether $y$ is even or odd so that you can give enough of a hint for the decompression to know which $y$ value to reconstruct.
For any value of $x$, there are (at most) two values for $y$ that satisfies the the curve equation (which is, in your case, $y^2 = x^3 - x + 3$). And, it turns out that (for odd characteristic fields, which this is) one of the two solutions for $y$ will be even, and one will be odd - hence, just stating whether $y$ is even or odd is enough information for the decompressor to know which one was meant.
For most points on the curve the upper point is even and the lower point is odd
Whether the curve is on the "upper half" (which, I suppose means $y > p/2$) or the "lower half" is irrelevant; we use the lsbit, no matter what the magnitude of $y$ happens to be.
Now, one could define an alternative compression algorithm that relied on whether $y > p/2$, rather than the lsbit of $y$. After all, in a prime field, one of the solutions will have $y > p/2$ and the other will have $y < p/2$. However, that's not what people actually do (one possible reason is because it's easier to test a single bit than to do a comparison on the full value)