Preheat the oven to 375F. Butter gratin dish (dishes if doing individual sizes).
In a large skillet, melt 2 tbsp butter over medium-low heat, add the onion and cook until soft (about 10 minutes), stirring occasionally.
Meanwhile, boil water and lemon juice in a large pot, then blanch the artichokes in lemon water until soft (about 10 minutes).
Remove the artichokes from the water and add the celery root to the boiling water (about 3 minutes), then add the potatoes for an additional minute.
Drain the water and stir the celery root and potatoes in with the onion over low heat.
Thinly slice the cooked artichokes, then add to the potato mixture.
Once the onion begins to turn golden, turn off the heat and season to taste with salt and pepper.
Soak the slices of bread in a bowl with the milk until soggy (about 1-2 minutes).
Squeeze out excess milk from each slice and toss with parsley, garlic and Parmesan cheese.
Fill the gratin dish with the vegetable mixture, then top with slices of bread and cover with leftover garlic, parsley and cheese.
Drizzle olive oil over the bread and bake at 375F until bread is golden (about 35-40 minutes). NOTE: If bread is not crispy after 35 minutes, turn the broiler on and broil until crispy.
Let the gratin(s) sit for a few minutes before serving.