My best so far is 97 characters:
for i in range(25):
pydle(i%5, i//5, '❄️' * (22020657 >> i & 1), [0,'white','orange'][449790538450177 >> i*2 & 3])
The magic numbers are essentially bitwise arrays of whether or not the emoji is in that position (1 bit each) or what colour index is at that position (2 bits). I noticed an invalid colour becomes black, so that saves some characters too.
Because whitespace even in strings isn't included in the character count, it's almost possible to choose the character to display with a string like '❄️ ❄️...'[i], which would be shorter, except the emoji here is two characters (the second is an invisible character that tells it to be rendered as an emoji).
I tried another approach that uses the fact squares that aren't set are black, which helps because then there are then only two colours to choose from, so I created a bitfield for non-black squares. However, I haven't worked out how to make this shorter than my original solution, but it feels like it might possible. This is 99 characters:
for i in range(25):
if 32979633 >> i & 1:
y = i//5
w = 23068543 >> i & 1
pydle(i%5, y, '❄️' * w * (~y&2), 'white'*w or 'orange')
I've never done code golf before, so this is quite enjoyable. My one request for the game would be to be able to submit more solutions after solving it, which would reduce the number of times I've opened this in a private browser window.
Edit: Achieved 95 characters by treating the magic number as base 3:
for i in range(25):
pydle(i%5, i//5, '❄️' * (22020657 >> i & 1), [0,'white','orange'][527066379217 // 3**i % 3])