If you were to break this up, you can get the first place for each event like this:
SELECT *
FROM prize
WHERE place = 1;
You could do the same for second place, and use a join to the original table to get the second place values like this:
SELECT t1.event_id, t1.money AS first
FROM(
SELECT event_id, money
FROM prize
WHERE place = 1) t1
JOIN(
SELECT event_id, money
FROM prize
WHERE place = 2) t2 ON t2.event_id = t1.event_id
JOIN(
SELECT event_id, money
FROM prize
WHERE place = 3) t3 ON t3.event_id = t1.event_id;
Here is an SQL Fiddle example. Note that this will break if an event doesn't have at least first, second, and third. If there can be fewer rows, I would use an outer join. This may also return unexpected results if there are multiple first place rows for an event.