BP posts profits of $3.3bn as oil prices rise again