Several sources, among them, "The Insulin Pump Therapy Book: Insights from the Experts," MiniMed Technologies, 1995, p. 79, suggest multiplying the number of protein grams by 0.6 and bolusing for that number as if it were carbohydrate.
If you want to account for fat in the same way, multiply the number of fat grams by 0.1 and treat them as carbohydrate as well.
From what I've seen personally and anecdotally, covering the protein and fat in your pre-meal bolus may cause you to go low 2 to 3 hours after eating. Many people have success by covering the protein and fat using an extended bolus several hours after the meal.
For example, suppose you eat an 8 ounce steak. That includes 7 grams of protein per ounce, or 56 grams. Multiply 56 by 0.6 to get about 34 grams. Fat is also about 7 grams per ounce, or 56 grams. Multiply that by 0.1 to get about 6 grams. Add those together for a total of 62 grams and cover them as carbohydrate using one of the strategies below.
Some people use the square wave bolus, dual wave bolus, or a bolus combined with a temporary basal rate to cover excess protein or fat. The idea is to deliver enough insulin to cover most of the carbs immediately, then deliver enough to cover the high-protein/fat effect over the next several hours. The timing and duration of the extended bolus will depend greatly on how your body reacts to fat and protein. You'll need to experiment to find what works well for you.
Some people simply calculate the total bolus and split it, taking half before the meal and half an hour or more later, depending on when they see the spike. Generally, if you're taking this route you should schedule the second bolus an hour or so before you expect the spike. The timing depends greatly on how quickly you react to insulin.
Remember, I am not a doctor, nor do I play one on TV. These are only methods that some people have found useful, not medically qualified advice. Before changing your treatment always consult with your physician and diabetes management team.