How to handle associated features in machine learning
The RandomForest algorithm may capture such interaction by splitting
an upper node by some condition on p1 and a lower node by another condition on p2, the link that you are expecting is captured if this happens under the same branch (p2 is on the path of p1). However, the ability to capture such information depends on the structure of the whole model (depth and number of trees) and the number of labels that you use.
It is a common practice to extract a third feature from coupled
features to explicitly express the linkage between them, for example, the ratio of change or the product. For not losing important information as you suggested (since a diff of 0.1 may be derived by subtracting 0.9-0.8 and 0.2-0.1) you may add to the model the third feature in addition to one of the original features.
I'm not sure that I understand the meaning of out-of-fold, but anyway note that using your labels twice (once for features preprocessing and once for training) can lead you to overfit the model since the labels leaked to the features in the preprocessing step. It is ok to explore your features in advance and in separate to the labels for understanding the links, subcategories, missing values, measuring the correlations and so.  


2 last note:


there might be a confusion here between the meaning of correlation and interaction.
you can consider using linear statistical modeling for your needs and number of data points. these models enabling to capture interactions and with their output you can learn about the significance of the correlation and to interpret them with their features importance. 
-- If you do so, you could also consider trying GLMM to see if there
are job effects, i.e there is a difference in the interaction between
different jobs.