Here's a bit of an elaboration on my earlier comment.
You can see $SO_3$ as the quotient of a unit $3$-ball by the antipodal map on the boundary. This is realized explicitly by the exponential map for $SO_3$. The tangent space to the identity of $SO_3$ is all $3\times 3$ matrices $H$ such that $H^T=-H$. Up to conjugation by an element of $SO_3$, such a matrix looks like
$$\left(\begin{matrix} 0 & \theta & 0 \\ -\theta & 0 & 0 \\ 0 & 0 & 0 \end{matrix}\right)$$
which under exponentiation is converted into rotation by $\theta$ about the $z$-axis. Every element of $SO_3$ is rotation by some angle about a fixed axis since the characteristic polynomial has $1$ as a root -- so this is a rather explicit description of how the exponential map is onto. If you choose the length of a matrix $[a_{i j}]$ to be $\sqrt{ \sum_{i j} a_{i j}^2}$, then technically $SO_3$ is the quotient of the ball of radius $\pi/\sqrt{2}$, with antipodal points on the boundary identified. But that's small potatoes.
The 3-ball with antipodal points identified, as you've seen has fundamental group $\Bbb Z_2$. In particular you can think of the 3-ball with antipodal points identified as being built up from the 1-ball with antipodal points identified, union a 2-cell (this gives a CW-decomposition of the 2-ball with antipodal points identified) then union a 3-cell. So the fundamental group all "happens" in the 2-ball with antipodal points identified. The 1-skeleton generates the fundamental group and in our model (under exponentiation) corresponds to one full rotation by $2\pi$ about any chosen axis. The relation corresponds to the 2-cell attachment and you can literally interpret it as the plate trick in a "sufficiently nice" model. Let me explain.
The trouble with the plate trick is it uses a human arm. Human arms you can think of as carrying a core underlying piece of information, a map $f : [0,1] \to SO_3$. $f(t)$ represents the orientation in space of the part of the arm distance $t$ from the shoulder, so $0$ represents the shoulder distance, and $1$ the palm of the hand. There are technical issues -- if you choose the framing corresponding to the positions of the appropriate bone in the arm, you don't get a continuous map, just a piecewise-constant map -- but if you consider the orientations of the ligaments between the bones it becomes a continuous map. So the trouble with the plate trick is the map $f$ isn't the only constraint on the arm. The arm is embedded in space. Bones are rigid, there's only so much ligaments are capable of doing. So you could be rightly concerned that the plate trick is a demonstration of a peculiarity of anatomy, rather than something about $SO_3$.
Alright, but formally what's going on with the plate trick? As mentioned, a configuration of the arm we're representing by $f$, which is an element of the path space $PSO_3$ of continuous paths in $SO_3$ with $f(0) = I \in SO_3$ fixed.
There is the path-loop fibration:
$$\Omega SO_3 \to PSO_3 \to SO_3$$
and $PSO_3$ is contractible. The plate trick "is" the induced map $\pi_1 SO_3 \to \pi_0 \Omega SO_3$ from the homotopy long exact sequence of the above fibration, which is guaranteed to be an isomorphism by the path-loop fibration. Specifically, elements of $\pi_1 SO_3$ you are thinking of as motions of your hand. The path-loop fibration is telling you that you can realize the motion as a motion of your arm (or at least, a path in $PSO_3$ but the fact that people can do the plate trick says you can actually realize it as a motion of your arm).
There is of course an element that's a bit misleading in all this. The arm isn't complicated enough to allow for you to lift the product of two generators of $\pi_1 SO_3$ and witness the null homotopy -- since the arm allows a fixed complexity, the null-homotopy happens as you lift the concatenation.
But you can see from the rather explicit exponential map above how the null homotopy actually works, as it's sitting in the image of the 2-ball with antipodal points identified.
How is that?
Best Answer
Here's an illustrated version of Sharkos' answer. We'll use the disk model of ℝP2: consider a disk with antipodal points on its boundary identified.
We can imagine a closed path that starts at the center, goes straight up (1st part in light blue) hits the topmost point of the disk's boundary - which is also the lowermost point of the disk's boundary - and then continues upwards (now from the bottom, 2nd part in dark blue) to reach the center again and close the loop:
We cannot shrink this loop to a point: we can modify it within the interior of the disk, but that doesn't get us very far. And if we try to change the loop at the point it crosses the boundary, we have to move the top and the bottom of the loop so that they cross at antipodal points, otherwise we brake the loop. For instance, doing the following breaks the loop:
We can slide both points so they stay opposite each other:
But that doesn't allow us to shrink this loop to a point.
Next we consider a loop that crosses the boundary twice:
The loops starts from the center, goes straight up to the top of the disk (1st part in light blue), comes up from the bottom to the center (2nd part in dark blue), continues up to the top of the disk (3rd part in pink) and finally comes up from the bottom of the disk back to the center to close the loop (4th part in red).
As in the previous example, if we move a point where the path crosses the boundary we have to move the opposite point in the opposite direction so they remain antipodal to one another. We can start to rotate the 1st and 2nd parts of the path counter-clockwise in a continuous way until it looks like this:
The loop is not broken in any way. We continue to rotate it:
Until we've rotated the first half of the path 180 degrees:
And this is where the magic happens: if we imagine a particle following along the loop, it travels down part 2 (in dark blue) and when it reaches the center it turns around and travels up part three (in pink). That means that we can pull the point where the end of part 2 and the beginning of part 3 meet upwards without breaking the loop:
We can now pull the 2-3 part of the loop past the boundary:
At which points it's evident that the loop is contractible.
As Sharkos said, it's sliding points around on the boundary that messes with our intuition: when there is only one point where the path crosses the boundary we cannot shrink the loop to a point because any time we move that point it must be "reflected" in the opposite side of the circle (this is more of an appeal to our intuition rather than a rigorous proof). When the path crosses the boundary twice we can slide one pair of opposite points around to effectively "untangle" the loop.